//  javascript 对象的规则描述语言和验证器  
//  验证创建用户规则

// 引入包
const Joi = require('joi');

//  定义对象验证规则
module.exports = async (req, res) => {
    const schema = {
        username: Joi.string().min(2).max(12).required().error(new Error('用户名不符合验证规则~')),
        email: Joi.string().min(120).email().required().error(new Error('邮箱不符合验证规则~')),
        password: Joi.string().reqex(/^[a-zA-Z0-9]{3,20}$/).required().error(new Error('密码不符合验证规则~')),
        role: Joi.string().valid('admin', 'normal').required().error(new Error('角色中非法~')),
        state: Joi.number().valid(0, 1).required().error(new Error('状态值非法~'))
    };
    try {
        await Joi.validate(req.body , schema);
    } catch (e) {
        // 验证没有通过重新定向到用户添加页面 再打印出错误信息
        res.redirect(`/admin/user-edit?message=${e.message}`);
    }
    res.send(req.body);
}